"""数据分析
1、打印 name、video、category列
2、打印 每个性别的种类分别有多少个
3、打印 fans 列的最大值
4、打印 fans 数量大于1000万的以及category为明星的
5、打印 videos的总和

图表：
1、不同category的账号种类分别有多少个-柱状图
2、按照country区分账号归属地-柱状图
"""


import pandas as pd
import matplotlib.pyplot as plt
import matplotlib

# 设置中文字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体显示中文
matplotlib.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

# 读取CSV文件
df = pd.read_csv('抖音.csv')

# 1. 打印 name、video、category列
print(df[['name', 'videos', 'category']])

# 2. 打印 每个性别的种类分别有多少个
gender_counts = df['gender'].value_counts()
print(gender_counts)

# 3. 打印 fans 列的最大值
max_fans = df['fans'].max()
print(max_fans)

# 4. 打印 fans 数量大于1000万的以及category为明星的
filtered_df = df[(df['fans'] > 10000000) & (df['category'] == '明星')]
print(filtered_df)
#
# 5. 打印 videos的总和
total_videos = df['videos'].sum()
print(total_videos)
#
# 1. 不同category的账号种类分别有多少个 - 柱状图
category_counts = df['category'].value_counts()
category_counts.plot(kind='bar', rot=45, color='skyblue')
plt.title('不同类别的账号数量')
plt.xlabel('类别')
plt.ylabel('数量')
plt.tight_layout()
plt.show()

# 2. 按照country区分账号归属地 - 柱状图
country_counts = df['country'].value_counts()
country_counts.plot(kind='bar', rot=45, color='lightgreen')
plt.title('不同国家的账号数量')
plt.xlabel('国家')
plt.ylabel('数量')
plt.tight_layout()
plt.show()